home *** CD-ROM | disk | FTP | other *** search
/ ASME's Mechanical Engine…ing Toolkit 1997 December / ASME's Mechanical Engineering Toolkit 1997 December.iso / c_lang / super_c.lzh / SLIB.ASM < prev    next >
Assembly Source File  |  1980-01-01  |  4KB  |  99 lines

  1. ;               Serial Port ROM BIOS Interface Library
  2.  
  3. _TEXT   segment byte public 'CODE'      ; Place the code in the code segment
  4.         assume  CS:_TEXT                ; Assume the CS register points to it
  5.  
  6. ; _serInit(port,config)
  7. ;
  8. ; Function: Initialize and configure serial port port (0 for COM1, 1 for
  9. ; COM2). See the main text of the chapter for details on the format of the
  10. ; config parameter.
  11. ;
  12. ; Algorithm: Call the ROM BIOS config function; int 14H, AH = 0.
  13.  
  14.         public  _serInit        ; Routine is available to other modules
  15.  
  16.         port = 4                ; Offset from BP to parameter port
  17.         config = 6              ; Offset to parameter config
  18.  
  19. _serInit proc near              ; NEAR type subroutine
  20.         push    bp              ; Save BP register
  21.         mov     bp,sp           ; Set BP to SP; easier to get parameters
  22.         mov     dx,[bp+port]    ; Set DX to the port number
  23.         mov     al,[bp+config]  ; Set AL to the configuration
  24.         mov     ah,0            ; Set AH to 0 (configure port function)
  25.         int     14H             ; Call ROM BIOS serial port interrupt
  26.         pop     bp              ; Restore the BP register
  27.         ret                     ; Return to calling program
  28. _serInit endp                   ; End of subroutine
  29.  
  30. ; _serSend(port,char)
  31. ;
  32. ; Function: Send the character char out over serial port port. Return the
  33. ; completion code/status.
  34. ;
  35. ; Algorithm: Call the ROM BIOS put char function; int 14H, AH = 1.
  36.  
  37.         public  _serSend        ; Routine is available to other modules
  38.  
  39.         port = 4                ; Offset from BP to parameter port
  40.         char = 6                ; Offset to parameter char
  41.  
  42. _serSend proc near              ; NEAR type subroutine
  43.         push    bp              ; Save BP register
  44.         mov     bp,sp           ; Set BP to SP; easier to get parameters
  45.         mov     dx,[bp+port]    ; Set DX to the port number
  46.         mov     al,[bp+char]    ; Set AL to the character
  47.         mov     ah,1            ; Set AH to 1 (send char function)
  48.         int     14H             ; Call ROM BIOS serial port interrupt
  49.         pop     bp              ; Restore the BP register
  50.         ret                     ; Return to calling program
  51. _serSend endp                   ; End of subroutine
  52.  
  53. ; _serRecv(port)
  54. ;
  55. ; Function: Wait for and receive a character from the serial port.
  56. ; Return the character in the low byte of the return value, and the
  57. ; status in the high byte.
  58. ;
  59. ; Algorithm: Call the ROM BIOS receive char function; int 14H, AH = 2.
  60.  
  61.         public  _serRecv        ; Routine is available to other modules
  62.  
  63.         port = 4                ; Offset from BP to parameter port
  64.  
  65. _serRecv proc near              ; NEAR type subroutine
  66.         push    bp              ; Save BP register
  67.         mov     bp,sp           ; Set BP to SP; easier to get parameters
  68.         mov     dx,[bp+port]    ; Set BH to the port number
  69.         mov     ah,2            ; Set AH to 2 (receive char function)
  70.         int     14H             ; Call ROM BIOS serial port interrupt
  71.         pop     bp              ; Restore the BP register
  72.         ret                     ; Return to calling program
  73. _serRecv endp                   ; End of subroutine
  74.  
  75. ; _serStat(port)
  76. ;
  77. ; Function: Return the status of the serial port specified.
  78. ;
  79. ; Algorithm: Call the ROM BIOS serial status function; int 14H, AH = 3.
  80.  
  81.         public  _serStat        ; Routine is available to other modules
  82.  
  83.         port = 4                ; Offset from BP to parameter port
  84.  
  85. _serStat proc near              ; NEAR type subroutine
  86.         push    bp              ; Save BP register
  87.         mov     bp,sp           ; Set BP to SP; easier to get parameters
  88.         mov     dx,[bp+port]    ; Set BH to the port number
  89.         mov     ah,3            ; Set AH to 3 (serial status function)
  90.         int     14H             ; Call ROM BIOS serial port interrupt
  91.         pop     bp              ; Restore the BP register
  92.         ret                     ; Return to calling program
  93. _serStat endp                   ; End of subroutine
  94.  
  95. _TEXT   ends                    ; End of code segment
  96.  
  97.         end                     ; End of assembly code
  98.  
  99.